package com.ow.dva.module.park.service.impl;

import com.ow.dva.module.base.entity.param.DvaPage;
import com.ow.dva.module.base.service.impl.DvaServiceImpl;
import com.ow.dva.module.park.entity.ParkArea;
import com.ow.dva.module.park.mapper.ParkAreaMapper;
import com.ow.dva.module.park.mapper.ParkinglotMapper;
import com.ow.dva.module.park.mapper.RoadMapper;
import com.ow.dva.module.park.service.ParkAreaService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 停车场区域表 服务实现类
 * </p>
 *
 * @author YanZengBao
 * @since 2020-02-19
 * @version V1.0
 */
@Service
public class ParkAreaServiceImpl extends DvaServiceImpl<ParkAreaMapper, ParkArea> implements ParkAreaService {

    @Resource
    private ParkinglotMapper parkinglotMapper;
    @Resource
    private RoadMapper roadMapper;

//    @DvaCache5M
    @Override
    public DvaPage<ParkArea> page(DvaPage<ParkArea> page, Map<String, Object> param) {

        return baseMapper.page(page,param);
    }

    /**
     * 描述：删除停车场区域以及绑定的相关信息
     * 创建时间： 2020/3/12 YanZengBao
     * 修改时间： 2020/3/12 YanZengBao  加注释
     * 修改时间：
     */
    @Override
    public boolean deleteParkAreaInfo(String id) {
        int i = baseMapper.deleteById(id);
        if(i>0){
            unybindParkinglotByAreaId(id);
            unybindRoadByAreaId(id);
            return true;
        }else{
            return false;
        }
    }

    @Override
    public List<ParkArea> getParkAreas() {
        return baseMapper.getParkAreas();
    }

    /**
     * 描述：查询与分区绑定的车位信息解绑
     * 创建时间： 2020/3/12 YanZengBao
     * 修改时间： 2020/3/12 YanZengBao  加注释
     * 修改时间：
     */
    private void unybindParkinglotByAreaId(String areaId){
        parkinglotMapper.quickUnyingByAreaId(areaId);
    }

    /**
     * 描述：查询与分区绑定的车道信息解绑
     * 创建时间： 2020/3/12 YanZengBao
     * 修改时间： 2020/3/12 YanZengBao  加注释
     * 修改时间：
     */
    private void unybindRoadByAreaId(String areaId){
        roadMapper.quickUnyingByAreaId(areaId);
    }
}
